[INFO] cloning repository https://github.com/jsleemaster/peep
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/jsleemaster/peep" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjsleemaster%2Fpeep", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjsleemaster%2Fpeep'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 722bc754c97519c04bb2a1f78eb0d30bbaeb2425
[INFO] checking jsleemaster/peep/722bc754c97519c04bb2a1f78eb0d30bbaeb2425 against master#03c609abb6638f9d7f49f34326d4137d07f5cd61 for pr-155945
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjsleemaster%2Fpeep" "/workspace/builds/worker-0-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/jsleemaster/peep
[INFO] finished tweaking git repo https://github.com/jsleemaster/peep
[INFO] tweaked toml for git repo https://github.com/jsleemaster/peep written to /workspace/builds/worker-0-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/jsleemaster/peep on toolchain 03c609abb6638f9d7f49f34326d4137d07f5cd61
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+03c609abb6638f9d7f49f34326d4137d07f5cd61" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/jsleemaster/peep already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+03c609abb6638f9d7f49f34326d4137d07f5cd61" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+03c609abb6638f9d7f49f34326d4137d07f5cd61" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 1b2059ef9de883e0a8cd7d7216069f511eaf07037c39b9db61ef6d7fb361c70c
[INFO] running `Command { std: "docker" "start" "-a" "1b2059ef9de883e0a8cd7d7216069f511eaf07037c39b9db61ef6d7fb361c70c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "1b2059ef9de883e0a8cd7d7216069f511eaf07037c39b9db61ef6d7fb361c70c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "1b2059ef9de883e0a8cd7d7216069f511eaf07037c39b9db61ef6d7fb361c70c", kill_on_drop: false }`
[INFO] [stdout] 1b2059ef9de883e0a8cd7d7216069f511eaf07037c39b9db61ef6d7fb361c70c
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+03c609abb6638f9d7f49f34326d4137d07f5cd61" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 1ac2720acc4bda95b95361851376b5bed7ee421fb600cded0046c395702fea30
[INFO] running `Command { std: "docker" "start" "-a" "1ac2720acc4bda95b95361851376b5bed7ee421fb600cded0046c395702fea30", kill_on_drop: false }`
[INFO] [stderr]     Checking tracing-core v0.1.36
[INFO] [stderr]     Checking http v1.4.0
[INFO] [stderr]     Checking errno v0.3.14
[INFO] [stderr]     Checking mio v1.1.1
[INFO] [stderr]     Checking parking_lot_core v0.9.12
[INFO] [stderr]     Checking socket2 v0.6.3
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]     Checking getrandom v0.2.17
[INFO] [stderr]    Compiling zerovec-derive v0.11.2
[INFO] [stderr]    Compiling tokio-macros v2.6.1
[INFO] [stderr]    Compiling zerofrom-derive v0.1.6
[INFO] [stderr]    Compiling yoke-derive v0.8.1
[INFO] [stderr]     Checking serde v1.0.228
[INFO] [stderr]     Checking futures-util v0.3.32
[INFO] [stderr]     Checking futures-channel v0.3.32
[INFO] [stderr]     Checking sync_wrapper v1.0.2
[INFO] [stderr]     Checking signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling darling_core v0.23.0
[INFO] [stderr]     Checking ipnet v2.12.0
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]     Checking parking_lot v0.12.5
[INFO] [stderr]     Checking regex-syntax v0.8.10
[INFO] [stderr]     Checking http-body v1.0.1
[INFO] [stderr]     Checking tracing v0.1.44
[INFO] [stderr]     Checking signal-hook v0.3.18
[INFO] [stderr]     Checking rustix v0.38.44
[INFO] [stderr]     Checking http-body-util v0.1.3
[INFO] [stderr]     Checking serde_json v1.0.149
[INFO] [stderr]     Checking signal-hook-mio v0.2.5
[INFO] [stderr]     Checking deranged v0.5.8
[INFO] [stderr]     Checking tracing-log v0.2.0
[INFO] [stderr]    Compiling strum_macros v0.26.4
[INFO] [stderr]     Checking inotify-sys v0.1.5
[INFO] [stderr]     Checking instant v0.1.13
[INFO] [stderr]     Checking tokio v1.50.0
[INFO] [stderr]     Checking winnow v0.7.15
[INFO] [stderr]     Checking simd-adler32 v0.3.9
[INFO] [stderr]     Checking iri-string v0.7.11
[INFO] [stderr]     Checking serde_urlencoded v0.7.1
[INFO] [stderr]     Checking toml_datetime v0.6.11
[INFO] [stderr]     Checking regex-automata v0.4.14
[INFO] [stderr]     Checking serde_spanned v0.6.9
[INFO] [stderr]     Checking crossterm v0.28.1
[INFO] [stderr]     Checking compact_str v0.8.1
[INFO] [stderr]     Checking clap_builder v4.6.0
[INFO] [stderr]     Checking axum-core v0.5.6
[INFO] [stderr]     Checking miniz_oxide v0.8.9
[INFO] [stderr]     Checking time v0.3.47
[INFO] [stderr]     Checking zerofrom v0.1.6
[INFO] [stderr]     Checking inotify v0.10.2
[INFO] [stderr]     Checking notify-types v1.0.1
[INFO] [stderr]     Checking yoke v0.8.1
[INFO] [stderr]    Compiling clap_derive v4.6.0
[INFO] [stderr]     Checking serde_path_to_error v0.1.20
[INFO] [stderr]     Checking chrono v0.4.44
[INFO] [stderr]     Checking zerovec v0.11.5
[INFO] [stderr]     Checking zerotrie v0.2.3
[INFO] [stderr]     Checking notify v7.0.0
[INFO] [stderr]     Checking xattr v1.6.1
[INFO] [stderr]     Checking flate2 v1.1.9
[INFO] [stderr]     Checking tar v0.4.45
[INFO] [stderr]     Checking uuid v1.22.0
[INFO] [stderr]     Checking strum v0.26.3
[INFO] [stderr]     Checking tinystr v0.8.2
[INFO] [stderr]     Checking potential_utf v0.1.4
[INFO] [stderr]     Checking icu_locale_core v2.1.1
[INFO] [stderr]     Checking icu_collections v2.1.1
[INFO] [stderr]     Checking toml_edit v0.22.27
[INFO] [stderr]     Checking matchers v0.2.0
[INFO] [stderr]    Compiling darling_macro v0.23.0
[INFO] [stderr]     Checking tracing-subscriber v0.3.23
[INFO] [stderr]    Compiling rustls v0.23.37
[INFO] [stderr]     Checking clap v4.6.0
[INFO] [stderr]     Checking icu_provider v2.1.1
[INFO] [stderr]    Compiling darling v0.23.0
[INFO] [stderr]    Compiling instability v0.3.12
[INFO] [stderr]     Checking tracing-appender v0.2.4
[INFO] [stderr]     Checking icu_properties v2.1.2
[INFO] [stderr]     Checking icu_normalizer v2.1.1
[INFO] [stderr]     Checking ratatui v0.29.0
[INFO] [stderr]     Checking toml v0.8.23
[INFO] [stderr]     Checking rustls-webpki v0.103.9
[INFO] [stderr]     Checking idna_adapter v1.2.1
[INFO] [stderr]     Checking idna v1.1.0
[INFO] [stderr]     Checking url v2.5.8
[INFO] [stderr]     Checking hyper v1.8.1
[INFO] [stderr]     Checking tower v0.5.3
[INFO] [stderr]     Checking tokio-util v0.7.18
[INFO] [stderr]     Checking tower-http v0.6.8
[INFO] [stderr]     Checking hyper-util v0.1.20
[INFO] [stderr]     Checking tokio-rustls v0.26.4
[INFO] [stderr]     Checking hyper-rustls v0.27.7
[INFO] [stderr]     Checking axum v0.8.8
[INFO] [stderr]     Checking reqwest v0.12.28
[INFO] [stderr]     Checking peep v0.6.16 (/opt/rustwide/workdir)
[INFO] [stdout] warning: field `ctx_pct` is never read
[INFO] [stdout]    --> examples/demo_g_chicken.rs:316:5
[INFO] [stdout]     |
[INFO] [stdout] 311 | struct PartyMember {
[INFO] [stdout]     |        ----------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 316 |     ctx_pct: u16,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Constraint`, `Direction`, and `Layout`
[INFO] [stdout]   --> examples/pixel_demo.rs:11:14
[INFO] [stdout]    |
[INFO] [stdout] 11 |     layout::{Constraint, Direction, Layout, Rect},
[INFO] [stdout]    |              ^^^^^^^^^^  ^^^^^^^^^  ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `border_color`
[INFO] [stdout]    --> examples/demo_c_minimal.rs:120:9
[INFO] [stdout]     |
[INFO] [stdout] 120 |     let border_color = if agent.is_done {
[INFO] [stdout]     |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_border_color`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `hd`
[INFO] [stdout]   --> examples/demo_f_party.rs:65:9
[INFO] [stdout]    |
[INFO] [stdout] 65 |     let hd = Some(Color::Rgb(
[INFO] [stdout]    |         ^^ help: if this is intentional, prefix it with an underscore: `_hd`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `d`
[INFO] [stdout]   --> examples/demo_b_hybrid.rs:66:29
[INFO] [stdout]    |
[INFO] [stdout] 66 |     let b = Some(body); let d = Some(dark);
[INFO] [stdout]    |                             ^ help: if this is intentional, prefix it with an underscore: `_d`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `ctx_pct` and `tokens` are never read
[INFO] [stdout]    --> examples/demo_f_party.rs:308:5
[INFO] [stdout]     |
[INFO] [stdout] 299 | struct PartyMember {
[INFO] [stdout]     |        ----------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 308 |     ctx_pct: u16,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 309 |     tokens: &'static str,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Tabs`
[INFO] [stdout]   --> examples/demo_d_combined.rs:15:42
[INFO] [stdout]    |
[INFO] [stdout] 15 |     widgets::{Block, Borders, Paragraph, Tabs},
[INFO] [stdout]    |                                          ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ORANGE` is never used
[INFO] [stdout]   --> examples/demo_b_hybrid.rs:56:7
[INFO] [stdout]    |
[INFO] [stdout] 56 | const ORANGE: Color = Color::Rgb(255, 160, 50);
[INFO] [stdout]    |       ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DARK_ORANGE` is never used
[INFO] [stdout]   --> examples/demo_b_hybrid.rs:57:7
[INFO] [stdout]    |
[INFO] [stdout] 57 | const DARK_ORANGE: Color = Color::Rgb(200, 120, 30);
[INFO] [stdout]    |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MOUTH_RED` is never used
[INFO] [stdout]   --> examples/pixel_demo.rs:86:7
[INFO] [stdout]    |
[INFO] [stdout] 86 | const MOUTH_RED: Color = Color::Rgb(200, 50, 50);
[INFO] [stdout]    |       ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BORDER` is never used
[INFO] [stdout]   --> examples/demo_d_combined.rs:24:7
[INFO] [stdout]    |
[INFO] [stdout] 24 | const BORDER: Color = Color::Rgb(40, 40, 55);
[INFO] [stdout]    |       ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `monitor_error` is never used
[INFO] [stdout]    --> examples/demo_d_combined.rs:143:4
[INFO] [stdout]     |
[INFO] [stdout] 143 | fn monitor_error(body: Color) -> Vec<Vec<Pixel>> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `try_str` is never used
[INFO] [stdout]  --> examples/../src/protocol/hook_payload.rs:8:4
[INFO] [stdout]   |
[INFO] [stdout] 8 | fn try_str<'a>(v: &'a Value, paths: &[&str]) -> Option<&'a str> {
[INFO] [stdout]   |    ^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `try_u64` is never used
[INFO] [stdout]   --> examples/../src/protocol/hook_payload.rs:31:4
[INFO] [stdout]    |
[INFO] [stdout] 31 | fn try_u64(v: &Value, paths: &[&str]) -> Option<u64> {
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `try_bool` is never used
[INFO] [stdout]   --> examples/../src/protocol/hook_payload.rs:54:4
[INFO] [stdout]    |
[INFO] [stdout] 54 | fn try_bool(v: &Value, paths: &[&str]) -> Option<bool> {
[INFO] [stdout]    |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_hook_payload` is never used
[INFO] [stdout]   --> examples/../src/protocol/hook_payload.rs:78:8
[INFO] [stdout]    |
[INFO] [stdout] 78 | pub fn parse_hook_payload(body: &Value) -> Option<RawIngestEvent> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_jsonl_line` is never used
[INFO] [stdout]  --> examples/../src/protocol/jsonl_payload.rs:8:8
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub fn parse_jsonl_line(line: &str) -> Option<RawIngestEvent> {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_jsonl_line_inner` is never used
[INFO] [stdout]   --> examples/../src/protocol/jsonl_payload.rs:29:4
[INFO] [stdout]    |
[INFO] [stdout] 29 | fn parse_jsonl_line_inner(line: &str) -> Option<RawIngestEvent> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `truncate` is never used
[INFO] [stdout]    --> examples/../src/protocol/jsonl_payload.rs:350:4
[INFO] [stdout]     |
[INFO] [stdout] 350 | fn truncate(s: &str, max_chars: usize) -> String {
[INFO] [stdout]     |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `map_hook_event_to_runtime_type` is never used
[INFO] [stdout]  --> examples/../src/protocol/normalize.rs:3:8
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn map_hook_event_to_runtime_type(name: &str) -> RuntimeEventType {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `derive_agent_display_name` is never used
[INFO] [stdout]   --> examples/../src/protocol/normalize.rs:74:8
[INFO] [stdout]    |
[INFO] [stdout] 74 | pub fn derive_agent_display_name(raw: &RawIngestEvent) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_subagent_event` is never used
[INFO] [stdout]    --> examples/../src/protocol/normalize.rs:184:4
[INFO] [stdout]     |
[INFO] [stdout] 184 | fn is_subagent_event(hook_event_name: Option<&str>) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `extract_subagent_name` is never used
[INFO] [stdout]    --> examples/../src/protocol/normalize.rs:188:4
[INFO] [stdout]     |
[INFO] [stdout] 188 | fn extract_subagent_name(detail: Option<&str>) -> Option<String> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `SharedAnalytics` is never used
[INFO] [stdout]   --> examples/../src/store/analytics.rs:18:10
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub type SharedAnalytics = Arc<RwLock<AnalyticsStore>>;
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `next` and `prev` are never used
[INFO] [stdout]   --> examples/../src/store/analytics.rs:43:12
[INFO] [stdout]    |
[INFO] [stdout] 33 | impl AnalyticsWindow {
[INFO] [stdout]    | -------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 43 |     pub fn next(self) -> Self {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 52 |     pub fn prev(self) -> Self {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CompletedAgentRecord` is never constructed
[INFO] [stdout]    --> examples/../src/store/analytics.rs:181:12
[INFO] [stdout]     |
[INFO] [stdout] 181 | pub struct CompletedAgentRecord {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FileState` is never constructed
[INFO] [stdout]    --> examples/../src/store/analytics.rs:189:8
[INFO] [stdout]     |
[INFO] [stdout] 189 | struct FileState {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SeenAgent` is never constructed
[INFO] [stdout]    --> examples/../src/store/analytics.rs:196:8
[INFO] [stdout]     |
[INFO] [stdout] 196 | struct SeenAgent {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> examples/../src/store/analytics.rs:203:12
[INFO] [stdout]     |
[INFO] [stdout] 202 | impl AnalyticsStore {
[INFO] [stdout]     | ------------------- associated items in this implementation
[INFO] [stdout] 203 |     pub fn new_shared() -> SharedAnalytics {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 207 |     pub fn load_or_default() -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 228 |     pub fn set_warming(&mut self, warming: bool) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 232 |     pub fn save_if_dirty(&mut self) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 412 |     pub fn bootstrap_from_paths(&mut self, paths: &[PathBuf]) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 619 |     fn needs_full_rebuild(&self, states: &[FileState]) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 631 |     fn ingest_file_range(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cache_path` is never used
[INFO] [stdout]    --> examples/../src/store/analytics.rs:733:4
[INFO] [stdout]     |
[INFO] [stdout] 733 | fn cache_path() -> PathBuf {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `capture_file_states` is never used
[INFO] [stdout]    --> examples/../src/store/analytics.rs:740:4
[INFO] [stdout]     |
[INFO] [stdout] 740 | fn capture_file_states(paths: &[PathBuf]) -> Result<Vec<FileState>> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `current_unix_ts` is never used
[INFO] [stdout]    --> examples/../src/store/analytics.rs:782:4
[INFO] [stdout]     |
[INFO] [stdout] 782 | fn current_unix_ts() -> i64 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `discover_jsonl_paths` is never used
[INFO] [stdout]    --> examples/../src/store/analytics.rs:809:8
[INFO] [stdout]     |
[INFO] [stdout] 809 | pub fn discover_jsonl_paths(base_dir: PathBuf) -> Vec<PathBuf> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FEED_LIMIT` is never used
[INFO] [stdout]   --> examples/../src/store/state.rs:13:7
[INFO] [stdout]    |
[INFO] [stdout] 13 | const FEED_LIMIT: usize = 1000;
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `STALE_AGENT_MS` is never used
[INFO] [stdout]   --> examples/../src/store/state.rs:14:7
[INFO] [stdout]    |
[INFO] [stdout] 14 | const STALE_AGENT_MS: i64 = 300_000; // 5 minutes
[INFO] [stdout]    |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `SharedStore` is never used
[INFO] [stdout]   --> examples/../src/store/state.rs:24:10
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub type SharedStore = Arc<RwLock<AppStore>>;
[INFO] [stdout]    |          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new_shared`, `apply_event`, and `gc_stale_agents` are never used
[INFO] [stdout]    --> examples/../src/store/state.rs:37:12
[INFO] [stdout]     |
[INFO] [stdout]  26 | impl AppStore {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  37 |     pub fn new_shared() -> SharedStore {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  42 |     pub fn apply_event(&mut self, raw: RawIngestEvent) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 196 |     pub fn gc_stale_agents(&mut self, now: i64) -> Vec<CompletedAgentRecord> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `next` and `prev` are never used
[INFO] [stdout]   --> examples/../src/tui/app.rs:22:8
[INFO] [stdout]    |
[INFO] [stdout] 21 | impl RankingsSection {
[INFO] [stdout]    | -------------------- methods in this implementation
[INFO] [stdout] 22 |     fn next(self) -> Self {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 31 |     fn prev(self) -> Self {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `running` and `rankings_window` are never read
[INFO] [stdout]   --> examples/../src/tui/app.rs:44:9
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub struct App {
[INFO] [stdout]    |            --- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 44 |     pub running: bool,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 57 |     pub rankings_window: AnalyticsWindow,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> examples/../src/tui/app.rs:141:12
[INFO] [stdout]     |
[INFO] [stdout]  80 | impl App {
[INFO] [stdout]     | -------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 141 |     pub fn handle_key(&mut self, key: KeyEvent) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 243 |     pub fn handle_mouse(&mut self, mouse: MouseEvent) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 252 |     fn scroll_down(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 270 |     fn scroll_up(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 284 |     fn scroll_to_top(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 293 |     fn scroll_to_bottom(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 304 |     fn advance_main_section(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 310 |     fn rewind_main_section(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 316 |     fn next_window(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 321 |     fn prev_window(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 326 |     fn reset_rankings_scroll(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 333 |     fn active_section_count(&self) -> usize {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 342 |     fn active_section_offset_mut(&mut self) -> &mut usize {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 375 |     fn next_project(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 380 |     fn prev_project(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `EventHandler` is never constructed
[INFO] [stdout]   --> examples/../src/tui/event.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct EventHandler {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `next` are never used
[INFO] [stdout]   --> examples/../src/tui/event.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | impl EventHandler {
[INFO] [stdout]    | ----------------- associated items in this implementation
[INFO] [stdout] 19 |     pub fn new(tick_rate_ms: u64) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 25 |     pub fn next(&self) -> Result<AppEvent> {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `from_stores` is never used
[INFO] [stdout]   --> examples/../src/tui/render.rs:58:18
[INFO] [stdout]    |
[INFO] [stdout] 57 | impl StoreSnapshot {
[INFO] [stdout]    | ------------------ associated function in this implementation
[INFO] [stdout] 58 |     pub async fn from_stores(
[INFO] [stdout]    |                  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `analytics_entries` is never used
[INFO] [stdout]    --> examples/../src/tui/render.rs:101:4
[INFO] [stdout]     |
[INFO] [stdout] 101 | fn analytics_entries(entries: Vec<crate::store::analytics::AnalyticsEntry>) -> Vec<RankedEntry> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `auto_detect` is never used
[INFO] [stdout]    --> examples/../src/tui/theme.rs:154:12
[INFO] [stdout]     |
[INFO] [stdout]  68 | impl Theme {
[INFO] [stdout]     | ---------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 154 |     pub fn auto_detect() -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sidebar_item_count` is never used
[INFO] [stdout]    --> examples/../src/tui/widgets/stage.rs:116:8
[INFO] [stdout]     |
[INFO] [stdout] 116 | pub fn sidebar_item_count(snap: &StoreSnapshot, project: &Option<String>) -> usize {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `main_panel_item_counts` is never used
[INFO] [stdout]    --> examples/../src/tui/widgets/stage.rs:123:8
[INFO] [stdout]     |
[INFO] [stdout] 123 | pub fn main_panel_item_counts(snap: &StoreSnapshot) -> (usize, usize, usize, usize) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `GITHUB_API` is never used
[INFO] [stdout]  --> examples/../src/update.rs:5:7
[INFO] [stdout]   |
[INFO] [stdout] 5 | const GITHUB_API: &str = "https://api.github.com/repos/jsleemaster/peep/releases/latest";
[INFO] [stdout]   |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `check_in_background`, and `try_get` are never used
[INFO] [stdout]   --> examples/../src/update.rs:13:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | impl UpdateStatus {
[INFO] [stdout]    | ----------------- associated items in this implementation
[INFO] [stdout] 13 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 20 |     pub fn check_in_background(&self) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 37 |     pub fn try_get(&self) -> Option<String> {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `auto_upgrade` is never used
[INFO] [stdout]   --> examples/../src/update.rs:49:14
[INFO] [stdout]    |
[INFO] [stdout] 49 | pub async fn auto_upgrade() -> bool {
[INFO] [stdout]    |              ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fetch_latest_version` is never used
[INFO] [stdout]    --> examples/../src/update.rs:186:10
[INFO] [stdout]     |
[INFO] [stdout] 186 | async fn fetch_latest_version() -> Option<String> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_newer` is never used
[INFO] [stdout]    --> examples/../src/update.rs:211:4
[INFO] [stdout]     |
[INFO] [stdout] 211 | fn is_newer(latest: &str, current: &str) -> bool {
[INFO] [stdout]     |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 28.31s
[INFO] running `Command { std: "docker" "inspect" "1ac2720acc4bda95b95361851376b5bed7ee421fb600cded0046c395702fea30", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "1ac2720acc4bda95b95361851376b5bed7ee421fb600cded0046c395702fea30", kill_on_drop: false }`
[INFO] [stdout] 1ac2720acc4bda95b95361851376b5bed7ee421fb600cded0046c395702fea30
